#ifndef _NE_MATERIAL_MANAGER_H_
#define _NE_MATERIAL_MANAGER_H_

#include <common/Singleton.h>
#include <system/ResourceManager.h>
#include <graphics/Material.h>

namespace ne
{
    class NEAPI MaterialManager : public ResourceManager, public Singleton<MaterialManager>
    {
        public:
            MaterialManager();

            virtual ~MaterialManager();

        public:
            static MaterialManager& GetSingleton();

            static MaterialManager* GetSingletonPtr();

        protected:
            Resource* createImplement(const uint64_t id,
                                      const std::string &name,
                                      const std::string &fileName,
                                      const bool isManual,
                                      ManualResourceLoader *pLoader);
    };
}

#endif
